Stata:展示OLS和GLM的交乘项(二)-icalc
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 基于机器学习的因果推断方法
作者:陈美琪 (宁波诺丁汉大学)
邮箱:438508741@qq.com
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 简介
2. 命令介绍
2.1 sigreg 命令
2.2 outdisp 命令
3. Stata 实操
4. 相关推文
1. 简介
在推文 Stata:展示OLS和GLM的交乘项(一)-icalc 中,我们介绍了 icalc
命令包中设置交乘项的命令 intspec
,生成图的命令 effdisp
,以及生成代数表达式的命令 gfi
。在这篇推文中将为大家介绍工具包中的另外两个命令:sigreg
和 outdisp
命令。
sigreg
的功能是创建显示焦点变量的影响和统计显著性的表,显示其如何随调节变量的值而变化;而 outdisp
生成表格、条形图、散点图或等高线图,以显示结果的预测值。
2. 命令介绍
2.1 sigreg 命令
sigreg
以表格形式对焦点变量影响的显著性区域进行了经验推导定义。如果可能的话也执行用于检验调节效应的 Johnson-Neyman 边界值分析,以找到中心变量显著影响调节变量的值。在运行 sigreg
之前必须运行 intspec
,intspec
的命令介绍详见推文 Stata:展示OLS和GLM的交乘项(一)-icalc。
sigreg, [ siglev(#, adjtype) effect(type(suboptions))
save( filepath, table matrix) ndigits(#)
concise nobva plotjn(graphname, skip#) ]
其中,siglev(#, adjtype)
是显著性的调整,默认为 0.05。
effect
是焦点变量单位变化显著性区域表中报告的系数值类型,具体参数 type
是系数类型的关键词。其中,b
为估计系数,factor
为因子变化系数,spost
为 mchange
命令计算的边际/离散变化,默认为 effect(b)
。
suboptions
为类型的子选项。对于系数类型为b
或者factor
,默认为 1,表示一个单位的变动,也可以更改为:sd
表示一个标准差的变动;#
表示任何非零实数的变动;sdy
表示以“模型”结果的标准差单位进行缩放的估计效果;sdyx
表示对焦点变量的1个标准差的变化所计算的 sdy 效应。对于系数类型为 spost
,语法为spost(amtopt() atopt()) where
。amtopt()
为 SPOST13 的mchange
命令指定变化量选项。必须包括amount()
的单一条目。默认为amtopt(amount(one))
。atopt()
为margins
命令的at()
选项指定内容,适用于除焦点或调节器以外的预测因子。默认为atopt((asobs) _all)
。
save
设置存储路径,将文件保存在 filepath
路径下,选择表格或者矩阵格式,例如 save(\output\sigtable.xlsx tab)
。
此外,ndigits
表示表格中数字的位数,必须为整数,默认为 2。concise
限制边界值分析中的细节。nobva
选项如果标注的话不做边界值分析。plotjn
表示如果有 2 个调节变量,则请求 Johnson-Neyman 边界值的图。
2.2 outdisp 命令
第二个命令为 outdisp
。outdisp
生成表格和/或柱状图,散点图或等高线图,显示交互作用的预测因素与结果之间的关系模式。柱状图和散点图可以选择性地将主效应模型的预测叠加在交互模型的预测值上。同样,在运行 outdisp
之前必须运行 intspec
。
outdisp
的基本语法为:
outdisp , [ outcome(metric(predtype) atopt(marginspec) sdy dualaxis mainest(estname))
plot(type(plottype) single(detail) name(graphname)
save(filepath) freq(base) keepfrq ccuts(numlist)))
table(rowvar(type) save(filepath) freq(base) abs) ndigits(#) pltopts(string) ]
outcome
展示预测结果,其中:
metric(predtype)
可选关键词为obs
和model
,分别对应观测到的度量 (默认) 和预测的度量。atopt
为margin
命令的at
选项指定内容,而不是焦点变量或调节变量。默认为atopt((asobs) _all)
。sdy
关键字仅对metric(model)
有效。在模型中标记主 y 轴公制标准偏差单位 (如适用)。dualaxix
关键字仅对metric(model)
有效。添加标记的第二个 y 轴观察结果指标。对mlogit
无效。mainest
仅对metric(obs)
有效。为交互效果添加主效果预测显示。必须使用estimates store estname
保存主要效果模型估计。
plot
指定如何绘制随焦点变量和调节变量而变化的结果,其中:
(type(plottype)
为绘制的图标类型,可以是散点图 (关键词sca
),柱状图 (关键词bar
),等值线图 (关键词contour
)。name
为图表命名。save
将绘图数据和频率分布保存到 Excel 文件,并注明名称和位置。single
是每单张图表显示何内容的关键词。1
表示为第一个调节变量的每个值显示单独焦点结果图,2
表示在相同的焦点结果图上显示第一调节变量的所有结果,但为第二个调节变量显示不同的值,all
表示为第一调节变量和第二调节变量的每个组合都显示不同的焦点结果图。freq(base)
在图中添加第一个调节变量或第一个和第二个的乘积的相对频率分布。(base)
的关键词可以是:tot
第一调节变量的分布;sub
第一调节变量在第二调节变量不同层级内的分布;subtot
第一第二调节变量在总样本中的联合分布。keepfreq
用于保存用于创建最终频率的单独频率分布图。
table
通过焦点和调节变量制作预测结果表,其中:
rowvar(type)
关键字focal
或mod
表行。默认rowvar(focal)
。save(filepath)
保存 (文件路径) 与plot
子选项相同。freq(base)
频率 (基数) 与plot
子选项相同。ndigits(#)
y 轴标签的位数,默认 4。ccuts(numlist)
定义等值线切割点。默认为从最小值到最大值的 6 等步预测的结果。pltopts(string)
包含双向图形选项来定制外观 (例如线的颜色)。但它们不总是有效的,如果无效,请使用图形编辑器。
3. Stata 实操
同样,我们使用作者提供的 SIPP_Wealth.dta,设置好路径并建立名为 Output 的文件夹,用于存储结果。执行以下命令,如果当前路径没有名为 Output 的文件夹就新建一个设置为存储路径。
. cap mkdir Output
. lxhuse sipp_wealth, clear
. mata: st_numscalar("dout", dirout=direxists("Output"))
首先我们执行回归命令,关注返回的回归结果。然后使用上一期提到的 intspec
命令设置好交互内容。最后使用 sigreg
命令查看交互结果。数据因变量为 netw10k (家庭财富净值,以 10k 为单位) ,我们关注 hoh (户主类型) 与 kids (孩子数量) 的交互关系,设定焦点变量为 hoh 户主类型,取值包括夫妻、单身男性、单身女性。
. regress netw10k metro i.edcat i.hoh##c.kids age agesq retired nilf hhld_income
Source | SS df MS Number of obs = 14,237
-------------+---------------------------------- F(15, 14221) = 320.85
Model | 1460168.38 15 97344.5585 Prob > F = 0.0000
Residual | 4314653.45 14,221 303.400144 R-squared = 0.2529
-------------+---------------------------------- Adj R-squared = 0.2521
Total | 5774821.82 14,236 405.649187 Root MSE = 17.418
-------------------------------------------------------------------------------
netw10k | Coefficient Std. err. t P>|t| [95% conf. interval]
--------------+----------------------------------------------------------------
metro | 0.491 0.332 1.48 0.139 -0.160 1.142
|
edcat |
HS | 4.579 0.497 9.21 0.000 3.605 5.553
SomeColl | 6.223 0.544 11.44 0.000 5.156 7.289
CollGrad | 8.728 0.606 14.41 0.000 7.541 9.916
PostGrad | 10.066 0.619 16.26 0.000 8.852 11.279
|
hoh |
Single_man | -1.699 0.499 -3.41 0.001 -2.677 -0.721
Single_woman | -3.770 0.438 -8.61 0.000 -4.628 -2.911
|
kids | -0.968 0.173 -5.59 0.000 -1.307 -0.628
|
hoh#c.kids |
Single_man | 0.062 0.706 0.09 0.930 -1.323 1.446
Single_woman | 1.677 0.390 4.30 0.000 0.912 2.443
|
age | 0.386 0.062 6.25 0.000 0.265 0.507
agesq | -0.000 0.001 -0.15 0.884 -0.001 0.001
retired | 1.281 0.582 2.20 0.028 0.141 2.422
nilf | 5.764 0.755 7.63 0.000 4.283 7.244
hhld_income | 2.804 0.072 38.96 0.000 2.663 2.945
_cons | -21.119 1.546 -13.66 0.000 -24.149 -18.089
-------------------------------------------------------------------------------
. mat list e(b)
. mat list e(V)
. intspec focal(i.hoh) main((c.kids, name(Children) range(0/10)) ///
> (i.hoh, name(Headship_Type) range(0/2))) ///
> int2(i.hoh#c.kids) ndig(0) abbrevn(14)
. sigreg, ndig(2)
Boundary Value Analysis Options Specified or Default
Skip BVA = no
Details
Significance Region Table Options Specified or Default
Critical value F = 3.842 set with p = 0.0500
Effect type = b (1 unit difference)
Decimals reported in tables = 2
Boundary Values for Significance of Effect of Headship_Type on g(netw10k) Moderated by Children
Critical value F = 3.842 set with p = 0.0500
+------------------------------------------------------------------------------------------+
|Effect of Headship_T|When Children >=|Sig Changes |When Children >=| Sig Changes |
|--------------------+----------------+--------------------+----------------+--------------|
| Single_man| 1.21 | to Not Sig [-5.69] | -0.84 (< min) | to Sig [4.90]|
| Single_woman| 1.59 | to Not Sig [-15.66]| 3.80 | to Sig [2.80]|
+------------------------------------------------------------------------------------------+
Note: Derivatives of Boundary Values in [ ]
Significance Region for Effect of Headship_Type (1 unit difference)
on g(netw10k) at Selected Values of Children
----------------------------------------------------------------------------------
At Children=
Effect of | 0 1 2 3 4 5 6 7 8 9 10
------------+--------------------------------------------------------------------
Single_man |-1.70* -1.64* -1.58 -1.51 -1.45 -1.39 -1.33 -1.27 -1.20 -1.14 -1.08
Single_woman|-3.77* -2.09* -0.41 1.26 2.94* 4.62* 6.29* 7.97* 9.65* 11.33* 13.00*
----------------------------------------------------------------------------------
Key: Plain font = Pos, Not Sig Bold font* = Pos, Sig
Italic font = Neg, Not Sig Italic font* = Neg, Sig
从表中可以看到,Single_woman 与 kids 的交互项显著为正。通过 intspec
命令设置为我们关注 kids 变量如何调节 hoh 对 netw10k 的影响。可以看到,当孩子数量大于 3.8 时,单身女性显著正向影响家庭净资产,相比之下单身男性对家庭净资产的影响不显著。第二张表清楚地显示了在不同的孩子数量下,户主类型对家庭净资产的影响大小及显著性。
接下来看一下 outdisp
命令的效果。我们执行回归命令,关注返回的回归结果。然后使用 intspec
命令设置好交互内容。最后使用 outdisp
命令查看图示交互效果。
我们关注 edcat (教育水平) 与 hoh (户主类型) 的交互关系。在这里我们设定了教育水平为焦点变量。下图显示了户主类型如何调节教育水平对家庭净值的影响,命令要求保留小数点后一位,增加图的边距。可以看到,对于不同的户主类型,不同的教育水平对家庭净值的影响是有差异的。
. regress netw10k metro i.edcat##i.hoh i.anykids age agesq retired nilf hhld_income
Source | SS df MS Number of obs = 14,237
-------------+---------------------------------- F(21, 14215) = 231.00
Model | 1469291.75 21 69966.274 Prob > F = 0.0000
Residual | 4305530.07 14,215 302.886392 R-squared = 0.2544
-------------+---------------------------------- Adj R-squared = 0.2533
Total | 5774821.82 14,236 405.649187 Root MSE = 17.404
----------------------------------------------------------------------------------------
netw10k | Coefficient Std. err. t P>|t| [95% conf. interval]
-----------------------+----------------------------------------------------------------
metro | 0.499 0.332 1.50 0.133 -0.151 1.150
|
edcat |
HS | 4.005 0.769 5.21 0.000 2.498 5.513
SomeColl | 5.860 0.810 7.24 0.000 4.273 7.448
CollGrad | 9.044 0.858 10.54 0.000 7.361 10.726
PostGrad | 10.914 0.864 12.63 0.000 9.220 12.609
|
hoh |
Single_man | -1.227 1.167 -1.05 0.293 -3.514 1.060
Single_woman | -3.102 0.900 -3.45 0.001 -4.866 -1.337
|
edcat#hoh |
HS#Single_man | 1.407 1.383 1.02 0.309 -1.304 4.119
HS#Single_woman | 1.139 1.062 1.07 0.284 -0.943 3.220
SomeColl#Single_man | -0.325 1.464 -0.22 0.824 -3.195 2.545
SomeColl#Single_woman | 1.267 1.156 1.10 0.273 -0.999 3.532
CollGrad#Single_man | -2.741 1.587 -1.73 0.084 -5.853 0.370
CollGrad#Single_woman | -0.785 1.325 -0.59 0.554 -3.381 1.812
PostGrad#Single_man | -3.766 1.602 -2.35 0.019 -6.906 -0.626
PostGrad#Single_woman | -3.542 1.399 -2.53 0.011 -6.285 -0.800
|
anykids |
1+ Kids | -2.222 0.352 -6.31 0.000 -2.913 -1.531
age | 0.416 0.062 6.72 0.000 0.294 0.537
agesq | -0.000 0.001 -0.75 0.454 -0.002 0.001
retired | 1.210 0.581 2.08 0.037 0.071 2.350
nilf | 6.012 0.749 8.02 0.000 4.544 7.481
hhld_income | 2.803 0.072 38.70 0.000 2.661 2.945
_cons | -21.296 1.615 -13.19 0.000 -24.461 -18.130
----------------------------------------------------------------------------------------
. intspec focal(i.edcat) main((i.edcat, name(Education) range(0/4)) ///
> (i.hoh, name(Head_Type) range(0/2))) ///
> int2(i.edcat#i.hoh) ndig(0) abbrevn(14)
Interaction Effects on netw10k Specified as
Main effect terms: 1.edcat 2.edcat 3.edcat 4.edcat 1.hoh 2.hoh
Two-way interaction terms: i.edcat#i.hoh
These will be treated as: Focal variable = 1.edcat 2.edcat 3.edcat 4.edcat ("Education")
moderated by interaction(s) with
1.hoh 2.hoh ("Head_Type")
. outdisp, plot(type(bar)) out(atopt((means) _all)) ndig(1) pltopts(plotregion(ma(t+4)))
Outcome Options Specified or Default
metric = obs
atopt = (means) _all
Plot Options Specified or Default
type = bar
4. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 交乘, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:论文写作 Stata:如何理解三个变量的交乘项? 专题:回归分析 调节效应是否需要考虑对控制变量交乘? Stata因子变量:虚拟变量-交乘项批量处理 专题:内生性-因果推断 Stata:内生变量的交乘项如何处理? 专题:交乘项-调节-中介 Stata:展示OLS和GLM的交乘项(一)-icalc 交乘项:交互作用需要交互控制 我为什么越跑越肥?交乘项系数的直观解释 Logit-Probit中的交乘项及边际效应图示 内生变量的交乘项如何处理? interactplot:图示交乘项-交互项-调节效应 Stata:交乘项的对称效应与图示 Stata:交乘项该如何使用?-黄河泉老师PPT Stata:虚拟变量交乘项生成和检验的简便方法 Stata:内生变量和它的交乘项 交乘项-交叉项的中心化问题 交乘项专题:主效应项可以忽略吗? Stata:交乘项该这么分析!
课程推荐:因果推断实用计量方法
主讲老师:邱嘉平教授
🍓 课程主页:https://gitee.com/lianxh/YGqjp
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。